#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>

void test1()
{

  pid_t id=fork();
  if(id==0)
  {
    //child
    int i=5;
    while(i--)
    {
     //bin sleep(1);
      printf("I am a child\n");
     sleep(1);
    }
    //exit(0);
  }
  else
  {

    int i=5;
    while(i--)
    {
      printf("I am a parent\n");
      sleep(1);
    }

  }
}

void test2()
{
  pid_t t1 =fork(); 
  pid_t t2 =fork();
  pid_t t3 =fork();
  pid_t t4 =fork();
  printf("A\n");
}


void test3()
{

  pid_t id=fork();
  if(id==0)
  {
    //child
    int i=5;
    while(i--)
    {
     //bin sleep(1);
      printf("I am a child\n");
     sleep(1);
    }
    exit();
  }
  else
  {

   //  pid_t r=waitpid(-1,NULL,WUNTRACED);
    pid_t r=wait(NULL);
    if(r>0)
    {

    int i=5;
    while(i--)
    {
      printf("I am a parent\n");
      sleep(1);
    }
    }
  }
}


void test4()
{
  pid_t id= fork();
  if(id==0)
  {
   int er= execl("./extest",NULL);
    if(er==-1)
    exit();

  }
  else 
  {
    printf("work error");
  }
}


void test5()
{

  pid_t id=fork();
  if(id==0)
  {
    //child
    int i=5;
    while(i--)
    {
     //bin sleep(1);
      printf("I am a child\n");
     sleep(1);
    }
    exit();
  }
  else
  {

   //  pid_t r=waitpid(-1,NULL,WUNTRACED);
    pid_t r=wait(NULL);
    if(r>0)
    {

    int i=5;
    while(i--)
    {
      printf("I am a parent\n");
      sleep(1);
    }
    }
  }
}


int main()
{
 //test1();
 //test2();
 // test3();
 test4();
  return 0;
}
